//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------

function write(v) { WScript.Echo(v + ""); }

function foo() {}

write(undefined >>> undefined);
write(undefined >>> null);
write(undefined >>> true);
write(undefined >>> false);
write(undefined >>> Boolean(true));
write(undefined >>> Boolean(false));
write(undefined >>> new Boolean(true));
write(undefined >>> new Boolean(false));
write(undefined >>> NaN);
write(undefined >>> +0);
write(undefined >>> -0);
write(undefined >>> 0);
write(undefined >>> 0.0);
write(undefined >>> -0.0);
write(undefined >>> +0.0);
write(undefined >>> 1);
write(undefined >>> 10);
write(undefined >>> 10.0);
write(undefined >>> 10.1);
write(undefined >>> -1);
write(undefined >>> -10);
write(undefined >>> -10.0);
write(undefined >>> -10.1);
write(undefined >>> Number.MAX_VALUE);
write(undefined >>> Number.MIN_VALUE);
write(undefined >>> Number.NaN);
write(undefined >>> Number.POSITIVE_INFINITY);
write(undefined >>> Number.NEGATIVE_INFINITY);
write(undefined >>> new Number(NaN));
write(undefined >>> new Number(+0));
write(undefined >>> new Number(-0));
write(undefined >>> new Number(0));
write(undefined >>> new Number(0.0));
write(undefined >>> new Number(-0.0));
write(undefined >>> new Number(+0.0));
write(undefined >>> new Number(1));
write(undefined >>> new Number(10));
write(undefined >>> new Number(10.0));
write(undefined >>> new Number(10.1));
write(undefined >>> new Number(-1));
write(undefined >>> new Number(-10));
write(undefined >>> new Number(-10.0));
write(undefined >>> new Number(-10.1));
write(undefined >>> new Number(Number.MAX_VALUE));
write(undefined >>> new Number(Number.MIN_VALUE));
write(undefined >>> new Number(Number.NaN));
write(undefined >>> new Number(Number.POSITIVE_INFINITY));
write(undefined >>> new Number(Number.NEGATIVE_INFINITY));
write(undefined >>> '');
write(undefined >>> 0xa);
write(undefined >>> 04);
write(undefined >>> 'hello');
write(undefined >>> 'hel' + 'lo');
write(undefined >>> String(''));
write(undefined >>> String('hello'));
write(undefined >>> String('h' + 'ello'));
write(undefined >>> new String(''));
write(undefined >>> new String('hello'));
write(undefined >>> new String('he' + 'llo'));
write(undefined >>> new Object());
write(undefined >>> new Object());
write(undefined >>> [1, 2, 3]);
write(undefined >>> [1 ,2 , 3]);
write(undefined >>> new Array(3));
write(undefined >>> Array(3));
write(undefined >>> new Array(1 ,2 ,3));
write(undefined >>> Array(1));
write(undefined >>> foo);
write(null >>> undefined);
write(null >>> null);
write(null >>> true);
write(null >>> false);
write(null >>> Boolean(true));
write(null >>> Boolean(false));
write(null >>> new Boolean(true));
write(null >>> new Boolean(false));
write(null >>> NaN);
write(null >>> +0);
write(null >>> -0);
write(null >>> 0);
write(null >>> 0.0);
write(null >>> -0.0);
write(null >>> +0.0);
write(null >>> 1);
write(null >>> 10);
write(null >>> 10.0);
write(null >>> 10.1);
write(null >>> -1);
write(null >>> -10);
write(null >>> -10.0);
write(null >>> -10.1);
write(null >>> Number.MAX_VALUE);
write(null >>> Number.MIN_VALUE);
write(null >>> Number.NaN);
write(null >>> Number.POSITIVE_INFINITY);
write(null >>> Number.NEGATIVE_INFINITY);
write(null >>> new Number(NaN));
write(null >>> new Number(+0));
write(null >>> new Number(-0));
write(null >>> new Number(0));
write(null >>> new Number(0.0));
write(null >>> new Number(-0.0));
write(null >>> new Number(+0.0));
write(null >>> new Number(1));
write(null >>> new Number(10));
write(null >>> new Number(10.0));
write(null >>> new Number(10.1));
write(null >>> new Number(-1));
write(null >>> new Number(-10));
write(null >>> new Number(-10.0));
write(null >>> new Number(-10.1));
write(null >>> new Number(Number.MAX_VALUE));
write(null >>> new Number(Number.MIN_VALUE));
write(null >>> new Number(Number.NaN));
write(null >>> new Number(Number.POSITIVE_INFINITY));
write(null >>> new Number(Number.NEGATIVE_INFINITY));
write(null >>> '');
write(null >>> 0xa);
write(null >>> 04);
write(null >>> 'hello');
write(null >>> 'hel' + 'lo');
write(null >>> String(''));
write(null >>> String('hello'));
write(null >>> String('h' + 'ello'));
write(null >>> new String(''));
write(null >>> new String('hello'));
write(null >>> new String('he' + 'llo'));
write(null >>> new Object());
write(null >>> new Object());
write(null >>> [1, 2, 3]);
write(null >>> [1 ,2 , 3]);
write(null >>> new Array(3));
write(null >>> Array(3));
write(null >>> new Array(1 ,2 ,3));
write(null >>> Array(1));
write(null >>> foo);
write(true >>> undefined);
write(true >>> null);
write(true >>> true);
write(true >>> false);
write(true >>> Boolean(true));
write(true >>> Boolean(false));
write(true >>> new Boolean(true));
write(true >>> new Boolean(false));
write(true >>> NaN);
write(true >>> +0);
write(true >>> -0);
write(true >>> 0);
write(true >>> 0.0);
write(true >>> -0.0);
write(true >>> +0.0);
write(true >>> 1);
write(true >>> 10);
write(true >>> 10.0);
write(true >>> 10.1);
write(true >>> -1);
write(true >>> -10);
write(true >>> -10.0);
write(true >>> -10.1);
write(true >>> Number.MAX_VALUE);
write(true >>> Number.MIN_VALUE);
write(true >>> Number.NaN);
write(true >>> Number.POSITIVE_INFINITY);
write(true >>> Number.NEGATIVE_INFINITY);
write(true >>> new Number(NaN));
write(true >>> new Number(+0));
write(true >>> new Number(-0));
write(true >>> new Number(0));
write(true >>> new Number(0.0));
write(true >>> new Number(-0.0));
write(true >>> new Number(+0.0));
write(true >>> new Number(1));
write(true >>> new Number(10));
write(true >>> new Number(10.0));
write(true >>> new Number(10.1));
write(true >>> new Number(-1));
write(true >>> new Number(-10));
write(true >>> new Number(-10.0));
write(true >>> new Number(-10.1));
write(true >>> new Number(Number.MAX_VALUE));
write(true >>> new Number(Number.MIN_VALUE));
write(true >>> new Number(Number.NaN));
write(true >>> new Number(Number.POSITIVE_INFINITY));
write(true >>> new Number(Number.NEGATIVE_INFINITY));
write(true >>> '');
write(true >>> 0xa);
write(true >>> 04);
write(true >>> 'hello');
write(true >>> 'hel' + 'lo');
write(true >>> String(''));
write(true >>> String('hello'));
write(true >>> String('h' + 'ello'));
write(true >>> new String(''));
write(true >>> new String('hello'));
write(true >>> new String('he' + 'llo'));
write(true >>> new Object());
write(true >>> new Object());
write(true >>> [1, 2, 3]);
write(true >>> [1 ,2 , 3]);
write(true >>> new Array(3));
write(true >>> Array(3));
write(true >>> new Array(1 ,2 ,3));
write(true >>> Array(1));
write(true >>> foo);
write(false >>> undefined);
write(false >>> null);
write(false >>> true);
write(false >>> false);
write(false >>> Boolean(true));
write(false >>> Boolean(false));
write(false >>> new Boolean(true));
write(false >>> new Boolean(false));
write(false >>> NaN);
write(false >>> +0);
write(false >>> -0);
write(false >>> 0);
write(false >>> 0.0);
write(false >>> -0.0);
write(false >>> +0.0);
write(false >>> 1);
write(false >>> 10);
write(false >>> 10.0);
write(false >>> 10.1);
write(false >>> -1);
write(false >>> -10);
write(false >>> -10.0);
write(false >>> -10.1);
write(false >>> Number.MAX_VALUE);
write(false >>> Number.MIN_VALUE);
write(false >>> Number.NaN);
write(false >>> Number.POSITIVE_INFINITY);
write(false >>> Number.NEGATIVE_INFINITY);
write(false >>> new Number(NaN));
write(false >>> new Number(+0));
write(false >>> new Number(-0));
write(false >>> new Number(0));
write(false >>> new Number(0.0));
write(false >>> new Number(-0.0));
write(false >>> new Number(+0.0));
write(false >>> new Number(1));
write(false >>> new Number(10));
write(false >>> new Number(10.0));
write(false >>> new Number(10.1));
write(false >>> new Number(-1));
write(false >>> new Number(-10));
write(false >>> new Number(-10.0));
write(false >>> new Number(-10.1));
write(false >>> new Number(Number.MAX_VALUE));
write(false >>> new Number(Number.MIN_VALUE));
write(false >>> new Number(Number.NaN));
write(false >>> new Number(Number.POSITIVE_INFINITY));
write(false >>> new Number(Number.NEGATIVE_INFINITY));
write(false >>> '');
write(false >>> 0xa);
write(false >>> 04);
write(false >>> 'hello');
write(false >>> 'hel' + 'lo');
write(false >>> String(''));
write(false >>> String('hello'));
write(false >>> String('h' + 'ello'));
write(false >>> new String(''));
write(false >>> new String('hello'));
write(false >>> new String('he' + 'llo'));
write(false >>> new Object());
write(false >>> new Object());
write(false >>> [1, 2, 3]);
write(false >>> [1 ,2 , 3]);
write(false >>> new Array(3));
write(false >>> Array(3));
write(false >>> new Array(1 ,2 ,3));
write(false >>> Array(1));
write(false >>> foo);
write(Boolean(true) >>> undefined);
write(Boolean(true) >>> null);
write(Boolean(true) >>> true);
write(Boolean(true) >>> false);
write(Boolean(true) >>> Boolean(true));
write(Boolean(true) >>> Boolean(false));
write(Boolean(true) >>> new Boolean(true));
write(Boolean(true) >>> new Boolean(false));
write(Boolean(true) >>> NaN);
write(Boolean(true) >>> +0);
write(Boolean(true) >>> -0);
write(Boolean(true) >>> 0);
write(Boolean(true) >>> 0.0);
write(Boolean(true) >>> -0.0);
write(Boolean(true) >>> +0.0);
write(Boolean(true) >>> 1);
write(Boolean(true) >>> 10);
write(Boolean(true) >>> 10.0);
write(Boolean(true) >>> 10.1);
write(Boolean(true) >>> -1);
write(Boolean(true) >>> -10);
write(Boolean(true) >>> -10.0);
write(Boolean(true) >>> -10.1);
write(Boolean(true) >>> Number.MAX_VALUE);
write(Boolean(true) >>> Number.MIN_VALUE);
write(Boolean(true) >>> Number.NaN);
write(Boolean(true) >>> Number.POSITIVE_INFINITY);
write(Boolean(true) >>> Number.NEGATIVE_INFINITY);
write(Boolean(true) >>> new Number(NaN));
write(Boolean(true) >>> new Number(+0));
write(Boolean(true) >>> new Number(-0));
write(Boolean(true) >>> new Number(0));
write(Boolean(true) >>> new Number(0.0));
write(Boolean(true) >>> new Number(-0.0));
write(Boolean(true) >>> new Number(+0.0));
write(Boolean(true) >>> new Number(1));
write(Boolean(true) >>> new Number(10));
write(Boolean(true) >>> new Number(10.0));
write(Boolean(true) >>> new Number(10.1));
write(Boolean(true) >>> new Number(-1));
write(Boolean(true) >>> new Number(-10));
write(Boolean(true) >>> new Number(-10.0));
write(Boolean(true) >>> new Number(-10.1));
write(Boolean(true) >>> new Number(Number.MAX_VALUE));
write(Boolean(true) >>> new Number(Number.MIN_VALUE));
write(Boolean(true) >>> new Number(Number.NaN));
write(Boolean(true) >>> new Number(Number.POSITIVE_INFINITY));
write(Boolean(true) >>> new Number(Number.NEGATIVE_INFINITY));
write(Boolean(true) >>> '');
write(Boolean(true) >>> 0xa);
write(Boolean(true) >>> 04);
write(Boolean(true) >>> 'hello');
write(Boolean(true) >>> 'hel' + 'lo');
write(Boolean(true) >>> String(''));
write(Boolean(true) >>> String('hello'));
write(Boolean(true) >>> String('h' + 'ello'));
write(Boolean(true) >>> new String(''));
write(Boolean(true) >>> new String('hello'));
write(Boolean(true) >>> new String('he' + 'llo'));
write(Boolean(true) >>> new Object());
write(Boolean(true) >>> new Object());
write(Boolean(true) >>> [1, 2, 3]);
write(Boolean(true) >>> [1 ,2 , 3]);
write(Boolean(true) >>> new Array(3));
write(Boolean(true) >>> Array(3));
write(Boolean(true) >>> new Array(1 ,2 ,3));
write(Boolean(true) >>> Array(1));
write(Boolean(true) >>> foo);
write(Boolean(false) >>> undefined);
write(Boolean(false) >>> null);
write(Boolean(false) >>> true);
write(Boolean(false) >>> false);
write(Boolean(false) >>> Boolean(true));
write(Boolean(false) >>> Boolean(false));
write(Boolean(false) >>> new Boolean(true));
write(Boolean(false) >>> new Boolean(false));
write(Boolean(false) >>> NaN);
write(Boolean(false) >>> +0);
write(Boolean(false) >>> -0);
write(Boolean(false) >>> 0);
write(Boolean(false) >>> 0.0);
write(Boolean(false) >>> -0.0);
write(Boolean(false) >>> +0.0);
write(Boolean(false) >>> 1);
write(Boolean(false) >>> 10);
write(Boolean(false) >>> 10.0);
write(Boolean(false) >>> 10.1);
write(Boolean(false) >>> -1);
write(Boolean(false) >>> -10);
write(Boolean(false) >>> -10.0);
write(Boolean(false) >>> -10.1);
write(Boolean(false) >>> Number.MAX_VALUE);
write(Boolean(false) >>> Number.MIN_VALUE);
write(Boolean(false) >>> Number.NaN);
write(Boolean(false) >>> Number.POSITIVE_INFINITY);
write(Boolean(false) >>> Number.NEGATIVE_INFINITY);
write(Boolean(false) >>> new Number(NaN));
write(Boolean(false) >>> new Number(+0));
write(Boolean(false) >>> new Number(-0));
write(Boolean(false) >>> new Number(0));
write(Boolean(false) >>> new Number(0.0));
write(Boolean(false) >>> new Number(-0.0));
write(Boolean(false) >>> new Number(+0.0));
write(Boolean(false) >>> new Number(1));
write(Boolean(false) >>> new Number(10));
write(Boolean(false) >>> new Number(10.0));
write(Boolean(false) >>> new Number(10.1));
write(Boolean(false) >>> new Number(-1));
write(Boolean(false) >>> new Number(-10));
write(Boolean(false) >>> new Number(-10.0));
write(Boolean(false) >>> new Number(-10.1));
write(Boolean(false) >>> new Number(Number.MAX_VALUE));
write(Boolean(false) >>> new Number(Number.MIN_VALUE));
write(Boolean(false) >>> new Number(Number.NaN));
write(Boolean(false) >>> new Number(Number.POSITIVE_INFINITY));
write(Boolean(false) >>> new Number(Number.NEGATIVE_INFINITY));
write(Boolean(false) >>> '');
write(Boolean(false) >>> 0xa);
write(Boolean(false) >>> 04);
write(Boolean(false) >>> 'hello');
write(Boolean(false) >>> 'hel' + 'lo');
write(Boolean(false) >>> String(''));
write(Boolean(false) >>> String('hello'));
write(Boolean(false) >>> String('h' + 'ello'));
write(Boolean(false) >>> new String(''));
write(Boolean(false) >>> new String('hello'));
write(Boolean(false) >>> new String('he' + 'llo'));
write(Boolean(false) >>> new Object());
write(Boolean(false) >>> new Object());
write(Boolean(false) >>> [1, 2, 3]);
write(Boolean(false) >>> [1 ,2 , 3]);
write(Boolean(false) >>> new Array(3));
write(Boolean(false) >>> Array(3));
write(Boolean(false) >>> new Array(1 ,2 ,3));
write(Boolean(false) >>> Array(1));
write(Boolean(false) >>> foo);
write(new Boolean(true) >>> undefined);
write(new Boolean(true) >>> null);
write(new Boolean(true) >>> true);
write(new Boolean(true) >>> false);
write(new Boolean(true) >>> Boolean(true));
write(new Boolean(true) >>> Boolean(false));
write(new Boolean(true) >>> new Boolean(true));
write(new Boolean(true) >>> new Boolean(false));
write(new Boolean(true) >>> NaN);
write(new Boolean(true) >>> +0);
write(new Boolean(true) >>> -0);
write(new Boolean(true) >>> 0);
write(new Boolean(true) >>> 0.0);
write(new Boolean(true) >>> -0.0);
write(new Boolean(true) >>> +0.0);
write(new Boolean(true) >>> 1);
write(new Boolean(true) >>> 10);
write(new Boolean(true) >>> 10.0);
write(new Boolean(true) >>> 10.1);
write(new Boolean(true) >>> -1);
write(new Boolean(true) >>> -10);
write(new Boolean(true) >>> -10.0);
write(new Boolean(true) >>> -10.1);
write(new Boolean(true) >>> Number.MAX_VALUE);
write(new Boolean(true) >>> Number.MIN_VALUE);
write(new Boolean(true) >>> Number.NaN);
write(new Boolean(true) >>> Number.POSITIVE_INFINITY);
write(new Boolean(true) >>> Number.NEGATIVE_INFINITY);
write(new Boolean(true) >>> new Number(NaN));
write(new Boolean(true) >>> new Number(+0));
write(new Boolean(true) >>> new Number(-0));
write(new Boolean(true) >>> new Number(0));
write(new Boolean(true) >>> new Number(0.0));
write(new Boolean(true) >>> new Number(-0.0));
write(new Boolean(true) >>> new Number(+0.0));
write(new Boolean(true) >>> new Number(1));
write(new Boolean(true) >>> new Number(10));
write(new Boolean(true) >>> new Number(10.0));
write(new Boolean(true) >>> new Number(10.1));
write(new Boolean(true) >>> new Number(-1));
write(new Boolean(true) >>> new Number(-10));
write(new Boolean(true) >>> new Number(-10.0));
write(new Boolean(true) >>> new Number(-10.1));
write(new Boolean(true) >>> new Number(Number.MAX_VALUE));
write(new Boolean(true) >>> new Number(Number.MIN_VALUE));
write(new Boolean(true) >>> new Number(Number.NaN));
write(new Boolean(true) >>> new Number(Number.POSITIVE_INFINITY));
write(new Boolean(true) >>> new Number(Number.NEGATIVE_INFINITY));
write(new Boolean(true) >>> '');
write(new Boolean(true) >>> 0xa);
write(new Boolean(true) >>> 04);
write(new Boolean(true) >>> 'hello');
write(new Boolean(true) >>> 'hel' + 'lo');
write(new Boolean(true) >>> String(''));
write(new Boolean(true) >>> String('hello'));
write(new Boolean(true) >>> String('h' + 'ello'));
write(new Boolean(true) >>> new String(''));
write(new Boolean(true) >>> new String('hello'));
write(new Boolean(true) >>> new String('he' + 'llo'));
write(new Boolean(true) >>> new Object());
write(new Boolean(true) >>> new Object());
write(new Boolean(true) >>> [1, 2, 3]);
write(new Boolean(true) >>> [1 ,2 , 3]);
write(new Boolean(true) >>> new Array(3));
write(new Boolean(true) >>> Array(3));
write(new Boolean(true) >>> new Array(1 ,2 ,3));
write(new Boolean(true) >>> Array(1));
write(new Boolean(true) >>> foo);
write(new Boolean(false) >>> undefined);
write(new Boolean(false) >>> null);
write(new Boolean(false) >>> true);
write(new Boolean(false) >>> false);
write(new Boolean(false) >>> Boolean(true));
write(new Boolean(false) >>> Boolean(false));
write(new Boolean(false) >>> new Boolean(true));
write(new Boolean(false) >>> new Boolean(false));
write(new Boolean(false) >>> NaN);
write(new Boolean(false) >>> +0);
write(new Boolean(false) >>> -0);
write(new Boolean(false) >>> 0);
write(new Boolean(false) >>> 0.0);
write(new Boolean(false) >>> -0.0);
write(new Boolean(false) >>> +0.0);
write(new Boolean(false) >>> 1);
write(new Boolean(false) >>> 10);
write(new Boolean(false) >>> 10.0);
write(new Boolean(false) >>> 10.1);
write(new Boolean(false) >>> -1);
write(new Boolean(false) >>> -10);
write(new Boolean(false) >>> -10.0);
write(new Boolean(false) >>> -10.1);
write(new Boolean(false) >>> Number.MAX_VALUE);
write(new Boolean(false) >>> Number.MIN_VALUE);
write(new Boolean(false) >>> Number.NaN);
write(new Boolean(false) >>> Number.POSITIVE_INFINITY);
write(new Boolean(false) >>> Number.NEGATIVE_INFINITY);
write(new Boolean(false) >>> new Number(NaN));
write(new Boolean(false) >>> new Number(+0));
write(new Boolean(false) >>> new Number(-0));
write(new Boolean(false) >>> new Number(0));
write(new Boolean(false) >>> new Number(0.0));
write(new Boolean(false) >>> new Number(-0.0));
write(new Boolean(false) >>> new Number(+0.0));
write(new Boolean(false) >>> new Number(1));
write(new Boolean(false) >>> new Number(10));
write(new Boolean(false) >>> new Number(10.0));
write(new Boolean(false) >>> new Number(10.1));
write(new Boolean(false) >>> new Number(-1));
write(new Boolean(false) >>> new Number(-10));
write(new Boolean(false) >>> new Number(-10.0));
write(new Boolean(false) >>> new Number(-10.1));
write(new Boolean(false) >>> new Number(Number.MAX_VALUE));
write(new Boolean(false) >>> new Number(Number.MIN_VALUE));
write(new Boolean(false) >>> new Number(Number.NaN));
write(new Boolean(false) >>> new Number(Number.POSITIVE_INFINITY));
write(new Boolean(false) >>> new Number(Number.NEGATIVE_INFINITY));
write(new Boolean(false) >>> '');
write(new Boolean(false) >>> 0xa);
write(new Boolean(false) >>> 04);
write(new Boolean(false) >>> 'hello');
write(new Boolean(false) >>> 'hel' + 'lo');
write(new Boolean(false) >>> String(''));
write(new Boolean(false) >>> String('hello'));
write(new Boolean(false) >>> String('h' + 'ello'));
write(new Boolean(false) >>> new String(''));
write(new Boolean(false) >>> new String('hello'));
write(new Boolean(false) >>> new String('he' + 'llo'));
write(new Boolean(false) >>> new Object());
write(new Boolean(false) >>> new Object());
write(new Boolean(false) >>> [1, 2, 3]);
write(new Boolean(false) >>> [1 ,2 , 3]);
write(new Boolean(false) >>> new Array(3));
write(new Boolean(false) >>> Array(3));
write(new Boolean(false) >>> new Array(1 ,2 ,3));
write(new Boolean(false) >>> Array(1));
write(new Boolean(false) >>> foo);
write(NaN >>> undefined);
write(NaN >>> null);
write(NaN >>> true);
write(NaN >>> false);
write(NaN >>> Boolean(true));
write(NaN >>> Boolean(false));
write(NaN >>> new Boolean(true));
write(NaN >>> new Boolean(false));
write(NaN >>> NaN);
write(NaN >>> +0);
write(NaN >>> -0);
write(NaN >>> 0);
write(NaN >>> 0.0);
write(NaN >>> -0.0);
write(NaN >>> +0.0);
write(NaN >>> 1);
write(NaN >>> 10);
write(NaN >>> 10.0);
write(NaN >>> 10.1);
write(NaN >>> -1);
write(NaN >>> -10);
write(NaN >>> -10.0);
write(NaN >>> -10.1);
write(NaN >>> Number.MAX_VALUE);
write(NaN >>> Number.MIN_VALUE);
write(NaN >>> Number.NaN);
write(NaN >>> Number.POSITIVE_INFINITY);
write(NaN >>> Number.NEGATIVE_INFINITY);
write(NaN >>> new Number(NaN));
write(NaN >>> new Number(+0));
write(NaN >>> new Number(-0));
write(NaN >>> new Number(0));
write(NaN >>> new Number(0.0));
write(NaN >>> new Number(-0.0));
write(NaN >>> new Number(+0.0));
write(NaN >>> new Number(1));
write(NaN >>> new Number(10));
write(NaN >>> new Number(10.0));
write(NaN >>> new Number(10.1));
write(NaN >>> new Number(-1));
write(NaN >>> new Number(-10));
write(NaN >>> new Number(-10.0));
write(NaN >>> new Number(-10.1));
write(NaN >>> new Number(Number.MAX_VALUE));
write(NaN >>> new Number(Number.MIN_VALUE));
write(NaN >>> new Number(Number.NaN));
write(NaN >>> new Number(Number.POSITIVE_INFINITY));
write(NaN >>> new Number(Number.NEGATIVE_INFINITY));
write(NaN >>> '');
write(NaN >>> 0xa);
write(NaN >>> 04);
write(NaN >>> 'hello');
write(NaN >>> 'hel' + 'lo');
write(NaN >>> String(''));
write(NaN >>> String('hello'));
write(NaN >>> String('h' + 'ello'));
write(NaN >>> new String(''));
write(NaN >>> new String('hello'));
write(NaN >>> new String('he' + 'llo'));
write(NaN >>> new Object());
write(NaN >>> new Object());
write(NaN >>> [1, 2, 3]);
write(NaN >>> [1 ,2 , 3]);
write(NaN >>> new Array(3));
write(NaN >>> Array(3));
write(NaN >>> new Array(1 ,2 ,3));
write(NaN >>> Array(1));
write(NaN >>> foo);
write(+0 >>> undefined);
write(+0 >>> null);
write(+0 >>> true);
write(+0 >>> false);
write(+0 >>> Boolean(true));
write(+0 >>> Boolean(false));
write(+0 >>> new Boolean(true));
write(+0 >>> new Boolean(false));
write(+0 >>> NaN);
write(+0 >>> +0);
write(+0 >>> -0);
write(+0 >>> 0);
write(+0 >>> 0.0);
write(+0 >>> -0.0);
write(+0 >>> +0.0);
write(+0 >>> 1);
write(+0 >>> 10);
write(+0 >>> 10.0);
write(+0 >>> 10.1);
write(+0 >>> -1);
write(+0 >>> -10);
write(+0 >>> -10.0);
write(+0 >>> -10.1);
write(+0 >>> Number.MAX_VALUE);
write(+0 >>> Number.MIN_VALUE);
write(+0 >>> Number.NaN);
write(+0 >>> Number.POSITIVE_INFINITY);
write(+0 >>> Number.NEGATIVE_INFINITY);
write(+0 >>> new Number(NaN));
write(+0 >>> new Number(+0));
write(+0 >>> new Number(-0));
write(+0 >>> new Number(0));
write(+0 >>> new Number(0.0));
write(+0 >>> new Number(-0.0));
write(+0 >>> new Number(+0.0));
write(+0 >>> new Number(1));
write(+0 >>> new Number(10));
write(+0 >>> new Number(10.0));
write(+0 >>> new Number(10.1));
write(+0 >>> new Number(-1));
write(+0 >>> new Number(-10));
write(+0 >>> new Number(-10.0));
write(+0 >>> new Number(-10.1));
write(+0 >>> new Number(Number.MAX_VALUE));
write(+0 >>> new Number(Number.MIN_VALUE));
write(+0 >>> new Number(Number.NaN));
write(+0 >>> new Number(Number.POSITIVE_INFINITY));
write(+0 >>> new Number(Number.NEGATIVE_INFINITY));
write(+0 >>> '');
write(+0 >>> 0xa);
write(+0 >>> 04);
write(+0 >>> 'hello');
write(+0 >>> 'hel' + 'lo');
write(+0 >>> String(''));
write(+0 >>> String('hello'));
write(+0 >>> String('h' + 'ello'));
write(+0 >>> new String(''));
write(+0 >>> new String('hello'));
write(+0 >>> new String('he' + 'llo'));
write(+0 >>> new Object());
write(+0 >>> new Object());
write(+0 >>> [1, 2, 3]);
write(+0 >>> [1 ,2 , 3]);
write(+0 >>> new Array(3));
write(+0 >>> Array(3));
write(+0 >>> new Array(1 ,2 ,3));
write(+0 >>> Array(1));
write(+0 >>> foo);
write(-0 >>> undefined);
write(-0 >>> null);
write(-0 >>> true);
write(-0 >>> false);
write(-0 >>> Boolean(true));
write(-0 >>> Boolean(false));
write(-0 >>> new Boolean(true));
write(-0 >>> new Boolean(false));
write(-0 >>> NaN);
write(-0 >>> +0);
write(-0 >>> -0);
write(-0 >>> 0);
write(-0 >>> 0.0);
write(-0 >>> -0.0);
write(-0 >>> +0.0);
write(-0 >>> 1);
write(-0 >>> 10);
write(-0 >>> 10.0);
write(-0 >>> 10.1);
write(-0 >>> -1);
write(-0 >>> -10);
write(-0 >>> -10.0);
write(-0 >>> -10.1);
write(-0 >>> Number.MAX_VALUE);
write(-0 >>> Number.MIN_VALUE);
write(-0 >>> Number.NaN);
write(-0 >>> Number.POSITIVE_INFINITY);
write(-0 >>> Number.NEGATIVE_INFINITY);
write(-0 >>> new Number(NaN));
write(-0 >>> new Number(+0));
write(-0 >>> new Number(-0));
write(-0 >>> new Number(0));
write(-0 >>> new Number(0.0));
write(-0 >>> new Number(-0.0));
write(-0 >>> new Number(+0.0));
write(-0 >>> new Number(1));
write(-0 >>> new Number(10));
write(-0 >>> new Number(10.0));
write(-0 >>> new Number(10.1));
write(-0 >>> new Number(-1));
write(-0 >>> new Number(-10));
write(-0 >>> new Number(-10.0));
write(-0 >>> new Number(-10.1));
write(-0 >>> new Number(Number.MAX_VALUE));
write(-0 >>> new Number(Number.MIN_VALUE));
write(-0 >>> new Number(Number.NaN));
write(-0 >>> new Number(Number.POSITIVE_INFINITY));
write(-0 >>> new Number(Number.NEGATIVE_INFINITY));
write(-0 >>> '');
write(-0 >>> 0xa);
write(-0 >>> 04);
write(-0 >>> 'hello');
write(-0 >>> 'hel' + 'lo');
write(-0 >>> String(''));
write(-0 >>> String('hello'));
write(-0 >>> String('h' + 'ello'));
write(-0 >>> new String(''));
write(-0 >>> new String('hello'));
write(-0 >>> new String('he' + 'llo'));
write(-0 >>> new Object());
write(-0 >>> new Object());
write(-0 >>> [1, 2, 3]);
write(-0 >>> [1 ,2 , 3]);
write(-0 >>> new Array(3));
write(-0 >>> Array(3));
write(-0 >>> new Array(1 ,2 ,3));
write(-0 >>> Array(1));
write(-0 >>> foo);
write(0 >>> undefined);
write(0 >>> null);
write(0 >>> true);
write(0 >>> false);
write(0 >>> Boolean(true));
write(0 >>> Boolean(false));
write(0 >>> new Boolean(true));
write(0 >>> new Boolean(false));
write(0 >>> NaN);
write(0 >>> +0);
write(0 >>> -0);
write(0 >>> 0);
write(0 >>> 0.0);
write(0 >>> -0.0);
write(0 >>> +0.0);
write(0 >>> 1);
write(0 >>> 10);
write(0 >>> 10.0);
write(0 >>> 10.1);
write(0 >>> -1);
write(0 >>> -10);
write(0 >>> -10.0);
write(0 >>> -10.1);
write(0 >>> Number.MAX_VALUE);
write(0 >>> Number.MIN_VALUE);
write(0 >>> Number.NaN);
write(0 >>> Number.POSITIVE_INFINITY);
write(0 >>> Number.NEGATIVE_INFINITY);
write(0 >>> new Number(NaN));
write(0 >>> new Number(+0));
write(0 >>> new Number(-0));
write(0 >>> new Number(0));
write(0 >>> new Number(0.0));
write(0 >>> new Number(-0.0));
write(0 >>> new Number(+0.0));
write(0 >>> new Number(1));
write(0 >>> new Number(10));
write(0 >>> new Number(10.0));
write(0 >>> new Number(10.1));
write(0 >>> new Number(-1));
write(0 >>> new Number(-10));
write(0 >>> new Number(-10.0));
write(0 >>> new Number(-10.1));
write(0 >>> new Number(Number.MAX_VALUE));
write(0 >>> new Number(Number.MIN_VALUE));
write(0 >>> new Number(Number.NaN));
write(0 >>> new Number(Number.POSITIVE_INFINITY));
write(0 >>> new Number(Number.NEGATIVE_INFINITY));
write(0 >>> '');
write(0 >>> 0xa);
write(0 >>> 04);
write(0 >>> 'hello');
write(0 >>> 'hel' + 'lo');
write(0 >>> String(''));
write(0 >>> String('hello'));
write(0 >>> String('h' + 'ello'));
write(0 >>> new String(''));
write(0 >>> new String('hello'));
write(0 >>> new String('he' + 'llo'));
write(0 >>> new Object());
write(0 >>> new Object());
write(0 >>> [1, 2, 3]);
write(0 >>> [1 ,2 , 3]);
write(0 >>> new Array(3));
write(0 >>> Array(3));
write(0 >>> new Array(1 ,2 ,3));
write(0 >>> Array(1));
write(0 >>> foo);
write(0.0 >>> undefined);
write(0.0 >>> null);
write(0.0 >>> true);
write(0.0 >>> false);
write(0.0 >>> Boolean(true));
write(0.0 >>> Boolean(false));
write(0.0 >>> new Boolean(true));
write(0.0 >>> new Boolean(false));
write(0.0 >>> NaN);
write(0.0 >>> +0);
write(0.0 >>> -0);
write(0.0 >>> 0);
write(0.0 >>> 0.0);
write(0.0 >>> -0.0);
write(0.0 >>> +0.0);
write(0.0 >>> 1);
write(0.0 >>> 10);
write(0.0 >>> 10.0);
write(0.0 >>> 10.1);
write(0.0 >>> -1);
write(0.0 >>> -10);
write(0.0 >>> -10.0);
write(0.0 >>> -10.1);
write(0.0 >>> Number.MAX_VALUE);
write(0.0 >>> Number.MIN_VALUE);
write(0.0 >>> Number.NaN);
write(0.0 >>> Number.POSITIVE_INFINITY);
write(0.0 >>> Number.NEGATIVE_INFINITY);
write(0.0 >>> new Number(NaN));
write(0.0 >>> new Number(+0));
write(0.0 >>> new Number(-0));
write(0.0 >>> new Number(0));
write(0.0 >>> new Number(0.0));
write(0.0 >>> new Number(-0.0));
write(0.0 >>> new Number(+0.0));
write(0.0 >>> new Number(1));
write(0.0 >>> new Number(10));
write(0.0 >>> new Number(10.0));
write(0.0 >>> new Number(10.1));
write(0.0 >>> new Number(-1));
write(0.0 >>> new Number(-10));
write(0.0 >>> new Number(-10.0));
write(0.0 >>> new Number(-10.1));
write(0.0 >>> new Number(Number.MAX_VALUE));
write(0.0 >>> new Number(Number.MIN_VALUE));
write(0.0 >>> new Number(Number.NaN));
write(0.0 >>> new Number(Number.POSITIVE_INFINITY));
write(0.0 >>> new Number(Number.NEGATIVE_INFINITY));
write(0.0 >>> '');
write(0.0 >>> 0xa);
write(0.0 >>> 04);
write(0.0 >>> 'hello');
write(0.0 >>> 'hel' + 'lo');
write(0.0 >>> String(''));
write(0.0 >>> String('hello'));
write(0.0 >>> String('h' + 'ello'));
write(0.0 >>> new String(''));
write(0.0 >>> new String('hello'));
write(0.0 >>> new String('he' + 'llo'));
write(0.0 >>> new Object());
write(0.0 >>> new Object());
write(0.0 >>> [1, 2, 3]);
write(0.0 >>> [1 ,2 , 3]);
write(0.0 >>> new Array(3));
write(0.0 >>> Array(3));
write(0.0 >>> new Array(1 ,2 ,3));
write(0.0 >>> Array(1));
write(0.0 >>> foo);
write(-0.0 >>> undefined);
write(-0.0 >>> null);
write(-0.0 >>> true);
write(-0.0 >>> false);
write(-0.0 >>> Boolean(true));
write(-0.0 >>> Boolean(false));
write(-0.0 >>> new Boolean(true));
write(-0.0 >>> new Boolean(false));
write(-0.0 >>> NaN);
write(-0.0 >>> +0);
write(-0.0 >>> -0);
write(-0.0 >>> 0);
write(-0.0 >>> 0.0);
write(-0.0 >>> -0.0);
write(-0.0 >>> +0.0);
write(-0.0 >>> 1);
write(-0.0 >>> 10);
write(-0.0 >>> 10.0);
write(-0.0 >>> 10.1);
write(-0.0 >>> -1);
write(-0.0 >>> -10);
write(-0.0 >>> -10.0);
write(-0.0 >>> -10.1);
write(-0.0 >>> Number.MAX_VALUE);
write(-0.0 >>> Number.MIN_VALUE);
write(-0.0 >>> Number.NaN);
write(-0.0 >>> Number.POSITIVE_INFINITY);
write(-0.0 >>> Number.NEGATIVE_INFINITY);
write(-0.0 >>> new Number(NaN));
write(-0.0 >>> new Number(+0));
write(-0.0 >>> new Number(-0));
write(-0.0 >>> new Number(0));
write(-0.0 >>> new Number(0.0));
write(-0.0 >>> new Number(-0.0));
write(-0.0 >>> new Number(+0.0));
write(-0.0 >>> new Number(1));
write(-0.0 >>> new Number(10));
write(-0.0 >>> new Number(10.0));
write(-0.0 >>> new Number(10.1));
write(-0.0 >>> new Number(-1));
write(-0.0 >>> new Number(-10));
write(-0.0 >>> new Number(-10.0));
write(-0.0 >>> new Number(-10.1));
write(-0.0 >>> new Number(Number.MAX_VALUE));
write(-0.0 >>> new Number(Number.MIN_VALUE));
write(-0.0 >>> new Number(Number.NaN));
write(-0.0 >>> new Number(Number.POSITIVE_INFINITY));
write(-0.0 >>> new Number(Number.NEGATIVE_INFINITY));
write(-0.0 >>> '');
write(-0.0 >>> 0xa);
write(-0.0 >>> 04);
write(-0.0 >>> 'hello');
write(-0.0 >>> 'hel' + 'lo');
write(-0.0 >>> String(''));
write(-0.0 >>> String('hello'));
write(-0.0 >>> String('h' + 'ello'));
write(-0.0 >>> new String(''));
write(-0.0 >>> new String('hello'));
write(-0.0 >>> new String('he' + 'llo'));
write(-0.0 >>> new Object());
write(-0.0 >>> new Object());
write(-0.0 >>> [1, 2, 3]);
write(-0.0 >>> [1 ,2 , 3]);
write(-0.0 >>> new Array(3));
write(-0.0 >>> Array(3));
write(-0.0 >>> new Array(1 ,2 ,3));
write(-0.0 >>> Array(1));
write(-0.0 >>> foo);
write(+0.0 >>> undefined);
write(+0.0 >>> null);
write(+0.0 >>> true);
write(+0.0 >>> false);
write(+0.0 >>> Boolean(true));
write(+0.0 >>> Boolean(false));
write(+0.0 >>> new Boolean(true));
write(+0.0 >>> new Boolean(false));
write(+0.0 >>> NaN);
write(+0.0 >>> +0);
write(+0.0 >>> -0);
write(+0.0 >>> 0);
write(+0.0 >>> 0.0);
write(+0.0 >>> -0.0);
write(+0.0 >>> +0.0);
write(+0.0 >>> 1);
write(+0.0 >>> 10);
write(+0.0 >>> 10.0);
write(+0.0 >>> 10.1);
write(+0.0 >>> -1);
write(+0.0 >>> -10);
write(+0.0 >>> -10.0);
write(+0.0 >>> -10.1);
write(+0.0 >>> Number.MAX_VALUE);
write(+0.0 >>> Number.MIN_VALUE);
write(+0.0 >>> Number.NaN);
write(+0.0 >>> Number.POSITIVE_INFINITY);
write(+0.0 >>> Number.NEGATIVE_INFINITY);
write(+0.0 >>> new Number(NaN));
write(+0.0 >>> new Number(+0));
write(+0.0 >>> new Number(-0));
write(+0.0 >>> new Number(0));
write(+0.0 >>> new Number(0.0));
write(+0.0 >>> new Number(-0.0));
write(+0.0 >>> new Number(+0.0));
write(+0.0 >>> new Number(1));
write(+0.0 >>> new Number(10));
write(+0.0 >>> new Number(10.0));
write(+0.0 >>> new Number(10.1));
write(+0.0 >>> new Number(-1));
write(+0.0 >>> new Number(-10));
write(+0.0 >>> new Number(-10.0));
write(+0.0 >>> new Number(-10.1));
write(+0.0 >>> new Number(Number.MAX_VALUE));
write(+0.0 >>> new Number(Number.MIN_VALUE));
write(+0.0 >>> new Number(Number.NaN));
write(+0.0 >>> new Number(Number.POSITIVE_INFINITY));
write(+0.0 >>> new Number(Number.NEGATIVE_INFINITY));
